package org.NooLab.compare.utilities.math;

import java.io.Serializable;


/**
 * 
 * provides some control parameters for calculating distances,
 * for instance which particular algorithm to use 
 * 
 */
public class DistanceControlProperties 	extends 
													DistanceControlPropertiesDefaults
										implements 
													Serializable{
 
	
	private static final long serialVersionUID = 7913346118442489208L;

	
	 
	
	// ------------------------------------------------------------------------
	public DistanceControlProperties(){
		
	}

	// creates a clone from the provided instance
	public DistanceControlProperties( DistanceControlProperties dcp ){

		if (dcp!=null){
			
			distanceMethod   = dcp.distanceMethod ;
			setSimMethod     = dcp.setSimMethod ;
			contextSimMethod = dcp.contextSimMethod ;
			 
			relativeDistances = dcp.relativeDistances ;
			normalizedDistances = dcp.normalizedDistances  ;
			bypassVectorAlignCheck = dcp.getBypassVectorAlignCheck() ;
			
			missingValueHandling = dcp.missingValueHandling ;
			
			mvSurrogateDistance  = dcp.mvSurrogateDistance  ;
			
			mvItemSetContrastalpha = dcp.mvItemSetContrastalpha ;
			mvItemSetContrastbeta  = dcp.mvItemSetContrastbeta  ;
			mvItemSetContrastsigma = dcp.mvItemSetContrastsigma  ;  
			
			itemSetContrast = dcp.itemSetContrast ;
			itemSetContrastRatio = dcp.itemSetContrastRatio ; //
			itemSetContrastOther = dcp.itemSetContrastOther ; //
			itemSetContrastOtherLabel = dcp.itemSetContrastOtherLabel ; //
			
			
		}
		
	}
	// ------------------------------------------------------------------------
	
	public int getDistanceMethod() {
		 
		return distanceMethod;
	}

	public void setDistanceMethod(int distanceMethod) {
		this.distanceMethod = distanceMethod;
	}

	public int getMissingValueHandling() {
		return missingValueHandling;
	}

	public void setMissingValueHandling(int missingValueHandling) {
		this.missingValueHandling = missingValueHandling;
	}
	

	public double getItemSetContrastsigma() {
		return mvItemSetContrastsigma;
	}
	public void setItemSetContrastsigma(double itemSetContrastsigma) {
		this.mvItemSetContrastsigma = itemSetContrastsigma;
	}

	
	public double getItemSetContrastalpha() {
		return mvItemSetContrastalpha;
	}
	public void setItemSetContrastalpha(double mvItemSetContrastalpha) {
		this.mvItemSetContrastalpha = mvItemSetContrastalpha;
	}

	
	public double getItemSetContrastbeta() {
		return mvItemSetContrastbeta;
	}
	public void setItemSetContrastbeta(double itemSetContrastbeta) {
		this.mvItemSetContrastbeta = itemSetContrastbeta;
	}

	
	public double getSurrogateDistance() {
		return mvSurrogateDistance;
	}
	public void setSurrogateDistance(double surrogateDistance) {
		this.mvSurrogateDistance = surrogateDistance;
	}



	
	
	
}
